#ifndef BODYPROTOGRAPHICSVIEW_H
#define BODYPROTOGRAPHICSVIEW_H

#include <QGraphicsView>

class BodyProtoGraphicsView : public QGraphicsView
{
    Q_OBJECT
public:
    enum BodyPart {
        BP_Head,
        BP_Chest,
        BP_Abdomen,
        BP_Spine,
        BP_Pelvis,
        BP_UpperExtremity,
        BP_LowerExtremity,

        BP_PartCount,
    };

    explicit BodyProtoGraphicsView(QWidget *parent = 0);

    QString currentBodyPart() const;

signals:
    void bodyPartChanged(const QString &part);

public slots:
    void setBodyPart(BodyPart part);

protected:
    void mousePressEvent(QMouseEvent *e);

private:
    void initScene();
    void createItems();
    QGraphicsScene *scene;
    QGraphicsEllipseItem *currentItem;

    QGraphicsPixmapItem *pixmapItem;
    QGraphicsEllipseItem *headItem;
    QGraphicsEllipseItem *spineItem;
    QGraphicsEllipseItem *chestItem;
    QGraphicsEllipseItem *pelvisItem;
    QGraphicsEllipseItem *abdomenItem;
    QGraphicsEllipseItem *upperExtremityItem;
    QGraphicsEllipseItem *lowerExtremityItem;

    static const QPen normalPen;
    static const QPen activedPen;
    static const char *parts[];
};

#endif // BODYPROTOGRAPHICSVIEW_H
